# @Time    : 2022/9/16 15:59
# @Author  : 南黎
# @FileName: A.读取数据.py
import pandas as pd
import numpy as np
from sklearn import preprocessing
data=pd.read_csv("Iris.csv").values

#1.把第五个y值改成1或0
for i in range(len(data)):
    if data[i,4]=='setosa':
        data[i,4]=1
    elif data[i,4]=='versicolor':
        data[i,4]=0

#2.数据归一化
max_abs_scaler = preprocessing.MaxAbsScaler()#注册一个预处理对象
data = max_abs_scaler.fit_transform(data)#fit_transform(X[, y])	适合数据，然后转换它。

#3.切片取得特征值和分类标记
Iris_X=data[:,0:4]#取得前面的4个特征值
print(Iris_X)
Iris_Y=data[:,4].astype('int')#取得第五个分类结果,用1和0表示
#注意一定要让y值加上.astype('int'),否则会报错，对于标本结果必须要是整型。
print(Iris_Y)

#4.保存数据到dat文件中
pd.DataFrame(Iris_X).to_csv('Iris_X.dat')
pd.DataFrame(Iris_Y).to_csv('Iris_Y.dat')



import pandas as pd
import numpy as np
from sklearn import preprocessing
def load_data():
    data=pd.read_csv("Iris.csv").values

    #1.把第五个y值改成1或0
    for i in range(len(data)):
        if data[i,4]=='setosa':
            data[i,4]=1
        elif data[i,4]=='versicolor':
            data[i,4]=0

    #2.数据归一化
    max_abs_scaler = preprocessing.MaxAbsScaler()#注册一个预处理对象
    data = max_abs_scaler.fit_transform(data)#fit_transform(X[, y])	适合数据，然后转换它。

    #3.切片取得特征值和分类标记
    Iris_X=data[:,0:4]#取得前面的4个特征值
    Iris_Y=data[:,4]#取得第五个分类结果,用1和0表示
    return  Iris_X,Iris_Y.astype('int')#注意一定要让y值加上.astype('int'),否则会报错，对于标本结果必须要是整型。
